JavaMail API ব্যবহার করে আপনি ইমেইল বার্তা তৈরি এবং পাঠাতে পারেন। MimeMessage এবং MimeBodyPart হল JavaMail API-তে ইমেইল বার্তা তৈরি করার জন্য দুটি গুরুত্বপূর্ণ ক্লাস। MimeMessage ক্লাস ব্যবহার করে মূল ইমেইল বার্তা তৈরি করা হয়, এবং MimeBodyPart ক্লাস ব্যবহার করে ইমেইলের অংশ (যেমন টেক্সট, ছবি, অ্যাটাচমেন্ট) তৈরি করা হয়।
1. MimeMessage:
MimeMessage হল ইমেইল বার্তা তৈরি করার জন্য ব্যবহৃত একটি ক্লাস। এটি একটি মেসেজের শিরোনাম, প্রাপক, প্রেরক, বিষয় এবং কন্টেন্ট ধারণ করে।
MimeMessage এর ব্যবহার:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class SendEmailWithMimeMessage {
public static void main(String[] args) {
// SMTP Server Properties
Properties properties = new Properties();
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", "587");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
// Authentication Details
String username = "your-email@gmail.com";
String password = "your-password";
// Session Setup
Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Create MimeMessage
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("your-email@gmail.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient-email@example.com"));
message.setSubject("Test Subject");
// Set the email body text
message.setText("Hello, this is a test email sent using MimeMessage!");
// Send message
Transport.send(message);
System.out.println("Email sent successfully!");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
এখানে কী হচ্ছে?
- SMTP Properties: ইমেইল পাঠানোর জন্য SMTP সার্ভারের প্রপার্টি এবং অ্যাথেনটিকেশন তথ্য প্রদান করা হয়েছে।
- Session:
Sessionঅবজেক্ট তৈরি করা হয়েছে যা SMTP সার্ভারের সাথে যোগাযোগ করবে। - MimeMessage:
MimeMessageঅবজেক্ট ব্যবহার করে ইমেইল বার্তা তৈরি করা হয়েছে।setFrom(),setRecipients(),setSubject(), এবংsetText()মেথড ব্যবহার করে প্রাপকের ইমেইল, বিষয় এবং কন্টেন্ট সেট করা হয়েছে। - Transport.send(): ইমেইল পাঠানোর জন্য
Transport.send()মেথড ব্যবহার করা হয়েছে।
2. MimeBodyPart:
MimeBodyPart ক্লাস ব্যবহার করা হয় ইমেইলের এক বা একাধিক অংশ তৈরি করতে, যেমন টেক্সট কন্টেন্ট, HTML কন্টেন্ট বা অ্যাটাচমেন্ট। এটি সাধারণত MimeMultipart অবজেক্টে যোগ করা হয়।
MimeBodyPart ব্যবহার করে ইমেইলে অ্যাটাচমেন্ট যুক্ত করা:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class SendEmailWithAttachment {
public static void main(String[] args) {
// SMTP Server Properties
Properties properties = new Properties();
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", "587");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
// Authentication Details
String username = "your-email@gmail.com";
String password = "your-password";
// Session Setup
Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Create MimeMessage
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("your-email@gmail.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient-email@example.com"));
message.setSubject("Test Email with Attachment");
// Create MimeBodyPart for text message
MimeBodyPart textPart = new MimeBodyPart();
textPart.setText("Hello, this is a test email with an attachment!");
// Create MimeBodyPart for attachment
MimeBodyPart attachmentPart = new MimeBodyPart();
String filename = "path_to_file/attachment.pdf";
attachmentPart.attachFile(new File(filename));
// Create MimeMultipart to combine text and attachment
MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(textPart);
multipart.addBodyPart(attachmentPart);
// Set the content of the message to the multipart
message.setContent(multipart);
// Send message
Transport.send(message);
System.out.println("Email with attachment sent successfully!");
} catch (MessagingException | IOException e) {
e.printStackTrace();
}
}
}
এখানে কী হচ্ছে?
- MimeBodyPart for Text: প্রথম
MimeBodyPartঅবজেক্ট তৈরি করা হয়েছে, যা টেক্সট কন্টেন্ট ধারণ করে। - MimeBodyPart for Attachment: দ্বিতীয়
MimeBodyPartঅবজেক্ট তৈরি করা হয়েছে, যা একটি ফাইল (এখানেattachment.pdf) অ্যাটাচমেন্ট হিসেবে ইমেইলে যোগ করবে। - MimeMultipart:
MimeMultipartঅবজেক্ট তৈরি করা হয়েছে, যার মধ্যে টেক্সট এবং অ্যাটাচমেন্ট দুটি অংশ অন্তর্ভুক্ত করা হয়েছে। - Set Content:
setContent()মেথডের মাধ্যমে পুরো ইমেইল মেসেজের কন্টেন্ট (MimeMultipart) সেট করা হয়েছে। - Transport.send(): ইমেইল পাঠানোর জন্য
Transport.send()মেথড ব্যবহার করা হয়েছে।
MimeMessage, MimeBodyPart এবং MimeMultipart এর সঙ্কলন:
- MimeMessage: মূল ইমেইল বার্তা তৈরি এবং প্রাপকের তথ্য (যেমন প্রেরক, প্রাপক, বিষয়, মেসেজ) সংরক্ষণ করে।
- MimeBodyPart: একেকটি ইমেইল অংশ (যেমন টেক্সট, HTML কন্টেন্ট, বা অ্যাটাচমেন্ট) তৈরি করে।
- MimeMultipart: একাধিক
MimeBodyPartকে একত্রিত করে, যাতে ইমেইলে একাধিক অংশ (টেক্সট এবং অ্যাটাচমেন্ট) থাকতে পারে।
MimeMessage, MimeBodyPart এবং MimeMultipart ক্লাসের সুবিধা:
- Flexibility: JavaMail API আপনাকে একাধিক ইমেইল কন্টেন্ট (টেক্সট, HTML, অ্যাটাচমেন্ট ইত্যাদি) একত্রে তৈরি করতে সক্ষম করে।
- Multiple Attachments: একাধিক অ্যাটাচমেন্ট যুক্ত করতে
MimeBodyPartব্যবহার করা যায় এবং সেগুলোMimeMultipartএ সংযুক্ত করা যায়। - Rich Content: HTML বা রিচ কন্টেন্ট ইমেইল পাঠানোর জন্য
MimeBodyPartব্যবহার করা যেতে পারে।
সারাংশ:
- MimeMessage হল মূল ইমেইল বার্তা তৈরি করার জন্য ব্যবহৃত ক্লাস, যা প্রাপকের তথ্য, বিষয়, এবং কন্টেন্ট ধারণ করে।
- MimeBodyPart হল ইমেইলের একক অংশ (যেমন টেক্সট, অ্যাটাচমেন্ট) তৈরি করার জন্য ব্যবহৃত ক্লাস।
- MimeMultipart হল একাধিক MimeBodyPart কে একত্রিত করার জন্য ব্যবহৃত ক্লাস, যা একাধিক ইমেইল অংশকে একসাথে পাঠানোর সুযোগ দেয়।
JavaMail API ব্যবহার করে ইমেইল পাঠানোর সময় এই তিনটি ক্লাস আপনাকে ইমেইল কন্টেন্ট এবং অ্যাটাচমেন্টের সঙ্গে রিচ এবং কাস্টমাইজড মেইল তৈরি করতে সহায়তা করে।
Read more